package com.xujf.demo.utils;

import android.app.Activity;
import android.content.Context;
import android.util.DisplayMetrics;
import android.view.View;
import android.view.inputmethod.InputMethodManager;

import java.util.Collection;

/**
 * Created by Ye Qijiang on 2016/1/11.
 */
public class BaseUtil {

    /**
     * 对于字符串判空，请使用StringUtils中对应的方法
     * @param x
     * @return
     */
    @Deprecated
    public static boolean isEmpty(String x) {
        if (x == null || x.equals("") || x.equals("null")) {
            return true;
        }
        return false;
    }

    /**
     * 对于字符串判空，请使用StringUtils中对应的方法
     * @param x
     * @return
     */
    @Deprecated
    public static boolean isEmptyTrim(String x) {
        if (x == null || x.equals("") || x.equals("null")
                || x.trim().equals("")) {
            return true;
        }
        return false;
    }

    public static boolean isEmpty(Collection<?> mList) {
        if (mList == null || mList.size() == 0) {
            return true;
        }
        return false;
    }

    public static boolean isEmpty(Object[] array) {
        if (null == array || array.length == 0) {
            return true;
        }
        return false;
    }

    public static int getScreenWidth(Context context) {
        DisplayMetrics dm = new DisplayMetrics();
        ((Activity) context).getWindowManager().getDefaultDisplay().getMetrics(dm);

        return dm.widthPixels;
    }

    public static int getScreenHeight(Context context) {
        DisplayMetrics dm = new DisplayMetrics();
        ((Activity) context).getWindowManager().getDefaultDisplay().getMetrics(dm);

        return dm.heightPixels;
    }

    /**
     * 根据手机的分辨率从 dp 的单位 转成为 px(像素)
     */

    public static int dip2px(Context context, float dpValue) {
        final float scale = context.getResources().getDisplayMetrics().density;
        return (int) (dpValue * scale + 0.5f);
    }

    /**
     * 根据手机的分辨率从 px(像素) 的单位 转成为 dp
     */
    public static int px2dip(Context context, float pxValue) {

        final float scale = context.getResources().getDisplayMetrics().density;
        return (int) (pxValue / scale + 0.5f);
    }

    // 将px值转换为sp值
    public static int px2sp(Context context, float pxValue) {
        final float fontScale = context.getResources().getDisplayMetrics().scaledDensity;
        return (int) (pxValue / fontScale + 0.5f);
    }

    // 将sp值转换为px值
    public static int sp2px(Context context, float spValue) {
        final float fontScale = context.getResources().getDisplayMetrics().scaledDensity;
        return (int) (spValue * fontScale + 0.5f);
    }


    /**
     * 关闭软键盘
     *
     * @param ctx 上下文
     * @param v   控件
     */
    public static void hideSoftInput(Context ctx, View v) {
        InputMethodManager imm = (InputMethodManager) ctx.getSystemService(Context.INPUT_METHOD_SERVICE);
        imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
    }

    /**
     * 打开软键盘
     *
     * @param ctx 上下文
     * @param v   控件
     */
    public static void showSoftInput(Context ctx, View v) {
        InputMethodManager imm = (InputMethodManager) ctx.getSystemService(Context.INPUT_METHOD_SERVICE);
        //显示键盘
        imm.showSoftInput(v, 0);
    }

}
